// custom-tab-bar/index.js
// 自定义底部导航栏组件（作为全局 TabBar 使用）
// 说明：该组件需放置在根目录 miniprogram/custom-tab-bar/ 下，
// 微信小程序会在 tabBar.custom = true 时自动加载此组件作为底部导航。

Component({
  data: {
    // 当前选中项索引
    selected: 0,
    // 文本与图标默认/选中颜色（与 app.json tabBar 配置保持一致）
    color: "#666666",
    selectedColor: "#20b26b",
    // Tab 列表配置：pagePath 必须与 app.json 中 tabBar.list 的页面路径一致
    list: [
      {
        pagePath: "/pages/index/index",
        iconPath: "icon-shouye-zhihui",
        selectedIconPath: "icon-shouye-zhihui",
        text: "首页"
      },
      {
        pagePath: "/pages/health/health",
        iconPath: "icon-anquanjiankong",
        selectedIconPath: "icon-anquanjiankong",
        text: "健康"
      },
      {
        pagePath: "/pages/message/message",
        iconPath: "icon-duanxin",
        selectedIconPath: "icon-duanxin",
        text: "消息"
      },
      {
        pagePath: "/pages/profile/profile",
        iconPath: "icon-yonghuguanli",
        selectedIconPath: "icon-yonghuguanli",
        text: "我的"
      }
    ]
  },

  attached() {
    // 使用延迟以确保当前页面栈已就绪，再同步选中态
    setTimeout(() => {
      this.updateSelected();
    }, 100);
  },

  ready() {
    // 再次尝试更新选中态，避免首次渲染遗漏
    this.updateSelected();
  },

  methods: {
    /**
     * 切换 Tab 事件
     */
    switchTab(e) {
      const data = e.currentTarget.dataset;
      const index = parseInt(data.index);
      const url = this.data.list[index].pagePath;

      // 使用 switchTab 跳转到底部页面
      wx.switchTab({ url });
      // 立即更新选中态，增强交互反馈
      this.setData({ selected: index });
    },

    /**
     * 同步底部选中态到当前页面
     * 通过读取当前路由匹配 list 中的 pagePath
     */
    updateSelected() {
      const pages = getCurrentPages();
      if (pages.length === 0) return;

      const currentPage = pages[pages.length - 1];
      if (!currentPage || !currentPage.route) return;

      const route = currentPage.route; // e.g. pages/index/index
      const index = this.data.list.findIndex(item => item.pagePath === `/${route}`);
      if (index !== -1) {
        this.setData({ selected: index });
      }
    }
  }
})


